#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
# print(re.match('www','www.baidu.com').span())
# print(re.match('com','www.baidu.com'))

"""
re.match只匹配字符串的开始，如果字符串开始不符合正则表达式，则匹配失败，函数返回None；
而re.search匹配整个字符串，直到找到一个匹配
"""

'''
line = "Cats are smarter than dogs"
matchObj = re.match(r'(.*) are (.*?) .*', line, re.M | re.I)
if matchObj:
    print("matchObj.group() : ", matchObj.group())
    print("matchObj.group(1) : ", matchObj.group(1))
    print("matchObj.group(2) : ", matchObj.group(2))
else:
    print("No match!!")
'''

# findall
ret = re.findall('\d','adsf123456we7we')    #匹配字符串中是数字的字符，并将匹配值返回到列表中
print(ret)

ret = re.search('\d','adsf123456we7we').group()     #按照表达式匹配到第一个值就返回
print(ret)

ret = re.match('\w','adsf123456we7we').group()  #按照表达式匹配开头第一个值，符合的话就返回，不符合就报错
print(ret)

ret = re.sub('\d','*','adsf123456we7we',0)      #匹配字符串中的数字，并且替换成*号，0表示替换所有
print(ret)

ret = re.subn('\d','*','adsf123456we7we',0)     #匹配字符串中的数字，并且替换成*号，返回一个元组，存放这替换结果和替换次数
print(ret)

obj = re.compile('\d')  #将正则表达式编译成一个正则表达式对象
ret = obj.search('ads123asd456').group()
print(ret)

ret = re.finditer('\d','adsf451we15615adf16')   #finditer返回一个存放匹配结果的迭代器
print(ret)
for i in ret:
    print(i.group())
